package com.triones.api.entity.interlace.dto;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
import lombok.experimental.Accessors;

import java.util.HashMap;
import java.util.Map;

/**
 * interlace子账户kyc
 */
@TableName(value = "tr_interlace_kyc")
@Data
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class InterlaceKycDO {
    @TableId(value = "id")
    private Long id;
    /**
     * 用户id
     */
    private Long uid;
    /**
     * 子账户id
     */
    private String interlaceAccountId;
    /**
     * 名（个人姓名的第一部分）
     */
    private String firstName;
    /**
     * 姓（个人姓名的最后部分）
     */
    private String lastName;
    /**
     * 出生日期 YYYY-MM-DD
     */
    private String dateOfBirth;
    /**
     * 性别 “M”表示男性，“F”表示女性 默认"M"
     */
    private String gender;
    /**
     * 职业
     */
    private String occupation;
    /**
     * 年薪
     */
    private String annualSalary;
    /**
     * 账户用途
     */
    private String accountPurpose;
    /**
     * 预期月交易量
     */
    private String expectedMonthlyVolume;
    /**
     * 国籍（请使用 ISO 3166-1 alpha-2 中定义的双字母国家/地区代码）
     */
    private String nationality;
    /**
     * 国民身份证号码 （护照/驾照/国民身份证必填）
     */
    private String nationalId;
    /**
     * 证件类型
     */
    private String idType;
    /**
     * 社会安全号码（Social Security Number，主要用于美国）
     */
    private String ssn;
    /**
     * 身份证发证日期 YYYY-MM-DD
     */
    private String issueDate;
    /**
     * 证件过期日期 YYYY-MM-DD
     */
    private String expiryDate;
    /**
     * 地址第一行
     */
    private String addressLine1;
    /**
     * 地址第二行
     */
    private String addressLine2;
    /**
     * 城市
     */
    private String city;
    /**
     * 省份
     */
    private String state;
    /**
     * 国家
     */
    private String country;
    /**
     * 邮政编码(地址的邮政编码。不允许使用空格或“+”。必须符合以下格式：^[a-zA-Z0-9]{1,15}$)
     */
    private String postalCode;
    /**
     * 身份证正面ID
     */
    private String idFrontId;
    /**
     * 身份证反面ID
     */
    private String idBackId;
    /**
     * 自拍照ID
     */
    private String selfie;
    /**
     * ip地址
     */
    private String ipAddress;
    /**
     * 手机号码（用户的电话号码，不带国家代码，长度≤15位）
     */
    private String phoneNumber;
    /**
     * 手机国家码（用户手机号码的国际拨号代码，仅数字，无“+”，长度≤3）
     */
    private String phoneCountryCode;
    /**
     * 来源类型 默认"api"
     */
    private String sourceType;
    /**
     * 状态（Pending：待定, Request：请求, Passed：通过, Canceled：已取消, Na：缺失）
     */
    private String status;
    /**
     * 创建时间
     */
    private Long createTime;
    /**
     * 更新时间
     */
    private Long updateTime;
    /**
     * 失败理由
     */
    private String failRemark;
    /**
     * 国籍名称（英文全称）
     */
    private String nationalityName;
    /**
     * 居住地国家名称（英文全称）
     */
    private String addressCountryName;
    /**
     * 居住地州/省名称（英文全称）
     */
    private String addressStateName;
    /**
     * 身份证正面url（平台内使用）
     */
    private String idFrontUrl;
    /**
     * 身份证反面url（平台内使用）
     */
    private String idBackUrl;
    /**
     * 自拍照url（平台内使用）
     */
    private String selfieUrl;
    /**
     * 请求参数
     */
    @TableField(exist = false)
    private Map<String, Object> params = new HashMap<>();
}
